First commit. Full implementation