almost everything works, just a few precedence issues