several updates to allow flexibility and configurations