all basic functionality for programmer implemented