variable argumets are maintenance, comments added, tests added