Made it functional with testing.