firt version. added basic functionality