added delegate and "showing" property