first working version
documentation