ECE306 Code and stuff