Initial pass, and kinda working