follow Swift practices