#feature #input completed input code implementation (needs clean up)