make parse() abstract