Big Update

Reimplementation