Put human <=> machine mappings as an extension
Remove the use of ActiveSupport::Memoizable
Add validation in Lesson model to match database validation