Continue reimplementation. Things are still broken ATM.