basic functionality completed, test unit to be done