final working version before style