FIXME - rebase this later, design and TODO notes