first version working

TODO: implement argv, revert