cleanded code; continued parser