removed final modifier from parse method so that sub classes can
override the parse method to return a more specific type