! finished prototype version 1.0