Hardware independent software