updated style and functions