adding more style
caching and tests
final development