use assemble instead of this/self