make doLayout method public for explicit layouting
overload add and insert methods