actually this is not a good design....