restructure

actually used a class
commit attempt from shell