self-install functionality added