Major updates in code, but still work in progress