Refactory!

all clean and working