added basic functionality
finished functionality