Framework code restructure
make SDL almost invisible