Basically kinda working initial version