checkstyle and tests
make strategies generic