new markdown implementation