Base code done, onto actual implementation