fix all bugs. maybe