fix all bugs, probably