basic functionality established but still in progress