reimplemented parse