Firs, crappy but working, version