sorted stuff a bit out.. still WiP