Begin implementing abstract platform

I'm sorry if that's too picky, but this still does look like an error case, where finishing the frame should not be an error (it's a valid operation)