first commit. all basic functionality working