reformatted with personal coding standards