finished almost a5q5. needs more documentation