basic functionality finished
basic functionality finished 2