added some of my old changes:
- taviso's assemble function
- some search* functions