Add python implementation (WIP)