move wallet code to separate file