partial fix
almost complete fix