implemented basic program