bunch of methods now virtual