added semi-working controller