first version tested and documented