Edited with class learning