use security groups and support assigning keys