suggestions and criticism are very welcome