first version

basic completed