making it self contained