updated interface, and made code community-centric