updated: modules added;main function added