finished program maybe some updates later