I'm rather new at this, all suggestions and criticisms are welcome