intermediate. got more working