almost done, only boilerplate left. Really nice that it works :)