Fleshed out proposal more
Basic start of implementation