I think This covers all :)