reimplemented basics
it compiles!