some new ideas for implementation