added basic functionality and specs