1.0 implementation complete

TODO: reduce code
TODO: documentation